HAL TIM IRQ handler and callbacks functions migration ¶
This section provides information about the HAL TIM callbacks register/unregister functions migration.
HAL TIM IRQ handler function ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_TIM_IRQHandler(&htim)
|
HAL_TIM_IRQHandler(&htim)
|
HAL TIM register/unregister callback functions ¶
HAL TIM register callback ¶
In HAL1, the function
HAL_TIM_RegisterCallback()
is used to register various TIM callbacks through a single function with a specific callback ID. In HAL2, distinct functions are available to register each specific TIM callback.
|
Function |
HAL 1 |
HAL 2 |
|---|---|---|
|
Period elapsed callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_PERIOD_ELAPSED_CB_ID,
USER_TIM_PeriodElapsedCallback);
|
HAL_TIM_RegisterUpdateCallback(&htim,
USER_TIM_UpdateCallback);
|
|
Update half complete callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID,
USER_TIM_PeriodElapsedHalfCpltCallback);
|
HAL_TIM_RegisterUpdateHalfCpltCallback(&htim,
USER_TIM_UpdateHalfCpltCallback);
|
|
Trigger callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_TRIGGER_CB_ID,
USER_TIM_TriggerCallback);
|
HAL_TIM_RegisterTriggerCallback(&htim,
USER_TIM_TriggerCallback);
|
|
Trigger half complete callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_TRIGGER_HALF_CB_ID,
USER_TIM_TriggerHalfCpltCallback);
|
HAL_TIM_RegisterTriggerHalfCpltCallback(&htim,
USER_TIM_TriggerHalfCpltCallback);
|
|
Input capture callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_IC_CAPTURE_CB_ID,
USER_TIM_IC_CaptureCallback);
|
HAL_TIM_RegisterInputCaptureCallback(&htim,
USER_TIM_InputCaptureCallback);
|
|
Input capture half complete callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_IC_CAPTURE_HALF_CB_ID,
USER_TIM_IC_CaptureHalfCpltCallback);
|
HAL_TIM_RegisterInputCaptureHalfCpltCallback(&htim,
USER_TIM_InputCaptureHalfCpltCallback);
|
|
Compare match / PWM pulse finished callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_OC_DELAY_ELAPSED_CB_ID,
USER_TIM_OC_DelayElapsedCallback);
/* or */
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_PWM_PULSE_FINISHED_CB_ID,
USER_TIM_PWM_PulseFinishedCallback);
|
HAL_TIM_RegisterCompareMatchCallback(&htim,
USER_TIM_CompareMatchCallback);
|
|
Compare match half complete callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID,
USER_TIM_PWM_PulseFinishedHalfCpltCallback);
|
HAL_TIM_RegisterCompareMatchHalfCpltCallback(&htim,
USER_TIM_CompareMatchHalfCpltCallback);
|
|
Commutation callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_COMMUTATION_CB_ID,
USER_TIM_CommutationCallback);
|
HAL_TIM_RegisterCommutationCallback(&htim,
USER_TIM_CommutationCallback);
|
|
Commutation half complete callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_COMMUTATION_HALF_CB_ID,
USER_TIM_CommutationHalfCpltCallback);
|
HAL_TIM_RegisterCommutationHalfCpltCallback(&htim,
USER_TIM_CommutationHalfCpltCallback);
|
|
Break callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_BREAK_CB_ID,
USER_TIM_BreakCallback);
|
HAL_TIM_RegisterBreakCallback(&htim,
USER_TIM_BreakCallback);
|
|
Break2 callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_BREAK2_CB_ID,
USER_TIM_Break2Callback);
|
HAL_TIM_RegisterBreak2Callback(&htim,
USER_TIM_Break2Callback);
|
|
Encoder index callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_ENCODER_INDEX_CB_ID,
USER_TIM_EncoderIndexCallback);
|
HAL_TIM_RegisterEncoderIndexCallback(&htim,
USER_TIM_EncoderIndexCallback);
|
|
Direction change callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_DIRECTION_CHANGE_CB_ID,
USER_TIM_DirectionChangeCallback);
|
HAL_TIM_RegisterDirectionChangeCallback(&htim,
USER_TIM_DirectionChangeCallback);
|
|
Index error callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_INDEX_ERROR_CB_ID,
USER_TIM_IndexErrorCallback);
|
HAL_TIM_RegisterIndexErrorCallback(&htim,
USER_TIM_IndexErrorCallback);
|
|
Transition error callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_TRANSITION_ERROR_CB_ID,
USER_TIM_TransitionErrorCallback);
|
HAL_TIM_RegisterTransitionErrorCallback(&htim,
USER_TIM_TransitionErrorCallback);
|
|
Error callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_ERROR_CB_ID,
USER_TIM_ErrorCallback);
|
HAL_TIM_RegisterErrorCallback(&htim,
USER_TIM_ErrorCallback);
|
|
MSP init callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_BASE_MSPINIT_CB_ID,
USER_TIM_BaseMspInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_IC_MSPINIT_CB_ID,
USER_TIM_IcMspInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_OC_MSPINIT_CB_ID,
USER_TIM_OcMspInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_PWM_MSPINIT_CB_ID,
USER_TIM_PwmMspInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_ONE_PULSE_MSPINIT_CB_ID,
USER_TIM_OnePulseMspInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_ENCODER_MSPINIT_CB_ID,
USER_TIM_EncoderMspInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID,
USER_TIM_HallSensorMspInitCallback);
|
/* Removed / Sequence changed */
|
|
MSP deinit callback |
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_BASE_MSPDEINIT_CB_ID,
USER_TIM_BaseMspDeInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_IC_MSPDEINIT_CB_ID,
USER_TIM_IcMspDeInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_OC_MSPDEINIT_CB_ID,
USER_TIM_OcMspDeInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_PWM_MSPDEINIT_CB_ID,
USER_TIM_PwmMspDeInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID,
USER_TIM_OnePulseMspDeInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_ENCODER_MSPDEINIT_CB_ID,
USER_TIM_EncoderMspDeInitCallback);
HAL_TIM_RegisterCallback(&htim,
HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID,
USER_TIM_HallSensorMspDeInitCallback);
|
/* Removed / Sequence changed */
|
HAL TIM unregister callback ¶
In HAL2, the unregister callback API
HAL_TIM_UnRegisterCallback()
has been removed. Instead, callbacks can be managed by re-registering the default HAL TIM weak callbacks as needed.
|
Function |
HAL 1 |
HAL 2 |
|---|---|---|
|
Period elapsed callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_PERIOD_ELAPSED_CB_ID);
|
HAL_TIM_RegisterUpdateCallback(&htim,
HAL_TIM_UpdateCallback);
|
|
Update half complete callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID);
|
HAL_TIM_RegisterUpdateHalfCpltCallback(&htim,
HAL_TIM_UpdateHalfCpltCallback);
|
|
Trigger callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_TRIGGER_CB_ID);
|
HAL_TIM_RegisterTriggerCallback(&htim,
HAL_TIM_TriggerCallback);
|
|
Trigger half complete callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_TRIGGER_HALF_CB_ID);
|
HAL_TIM_RegisterTriggerHalfCpltCallback(&htim,
HAL_TIM_TriggerHalfCpltCallback);
|
|
Input capture callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_IC_CAPTURE_CB_ID);
|
HAL_TIM_RegisterInputCaptureCallback(&htim,
HAL_TIM_InputCaptureCallback);
|
|
Input capture half complete callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_IC_CAPTURE_HALF_CB_ID);
|
HAL_TIM_RegisterInputCaptureHalfCpltCallback(&htim,
HAL_TIM_InputCaptureHalfCpltCallback);
|
|
Compare match / PWM pulse finished callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_OC_DELAY_ELAPSED_CB_ID);
|
HAL_TIM_RegisterCompareMatchCallback(&htim,
HAL_TIM_CompareMatchCallback);
|
|
Compare match half complete callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID);
|
HAL_TIM_RegisterCompareMatchHalfCpltCallback(&htim,
HAL_TIM_CompareMatchHalfCpltCallback);
|
|
Commutation callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_COMMUTATION_CB_ID);
|
HAL_TIM_RegisterCommutationCallback(&htim,
HAL_TIM_CommutationCallback);
|
|
Commutation half complete callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_COMMUTATION_HALF_CB_ID);
|
HAL_TIM_RegisterCommutationHalfCpltCallback(&htim,
HAL_TIM_CommutationHalfCpltCallback);
|
|
Break callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_BREAK_CB_ID);
|
HAL_TIM_RegisterBreakCallback(&htim,
HAL_TIM_BreakCallback);
|
|
Break2 callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_BREAK2_CB_ID);
|
HAL_TIM_RegisterBreak2Callback(&htim,
HAL_TIM_Break2Callback);
|
|
Encoder index callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_ENCODER_INDEX_CB_ID);
|
HAL_TIM_RegisterEncoderIndexCallback(&htim,
HAL_TIM_EncoderIndexCallback);
|
|
Direction change callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_DIRECTION_CHANGE_CB_ID);
|
HAL_TIM_RegisterDirectionChangeCallback(&htim,
HAL_TIM_DirectionChangeCallback);
|
|
Index error callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_INDEX_ERROR_CB_ID);
|
HAL_TIM_RegisterIndexErrorCallback(&htim,
HAL_TIM_IndexErrorCallback);
|
|
Transition error callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_TRANSITION_ERROR_CB_ID);
|
HAL_TIM_RegisterTransitionErrorCallback(&htim,
HAL_TIM_TransitionErrorCallback);
|
|
Error callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_ERROR_CB_ID);
|
HAL_TIM_RegisterErrorCallback(&htim,
HAL_TIM_ErrorCallback);
|
|
MSP init callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_BASE_MSPINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_IC_MSPINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_OC_MSPINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_PWM_MSPINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_ONE_PULSE_MSPINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_ENCODER_MSPINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID);
|
/* Removed / Sequence changed */
|
|
MSP deinit callback |
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_BASE_MSPDEINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_IC_MSPDEINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_OC_MSPDEINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_PWM_MSPDEINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_ENCODER_MSPDEINIT_CB_ID);
HAL_TIM_UnRegisterCallback(&htim,
HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID);
|
/* Removed / Sequence changed */
|
HAL TIM error callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_ErrorCallback(hal_tim_handle_t *htim);
|
HAL TIM update callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_UpdateCallback(hal_tim_handle_t *htim);
|
HAL TIM update half complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_UpdateHalfCpltCallback(hal_tim_handle_t *htim);
|
HAL TIM input capture callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_InputCaptureCallback(hal_tim_handle_t *htim,
hal_tim_channel_t channel);
|
HAL TIM input capture half complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_InputCaptureHalfCpltCallback(hal_tim_handle_t *htim,
hal_tim_channel_t channel);
|
HAL TIM compare match callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_CompareMatchCallback(hal_tim_handle_t *htim,
hal_tim_channel_t channel);
|
HAL TIM compare match half complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_CompareMatchHalfCpltCallback(hal_tim_handle_t *htim,
hal_tim_channel_t channel);
|
HAL TIM PWM pulse finished callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_CompareMatchCallback(hal_tim_handle_t *htim,
hal_tim_channel_t channel);
|
HAL TIM trigger callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_TriggerCallback(hal_tim_handle_t *htim);
|
HAL TIM trigger half complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim);
|
void HAL_TIM_TriggerHalfCpltCallback(hal_tim_handle_t *htim);
|
HAL TIM callback type definition ¶
|
HAL1 |
HAL2 |
|---|---|
typedef void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim);
|
typedef void (*hal_tim_cb_t)(hal_tim_handle_t *htim);
|